پیغام مدیر :
با سلام خدمت شما بازديدكننده گرامي ، خوش آمدید به سایت من . لطفا براي هرچه بهتر شدن مطالب اين وب سایت ، ما را از نظرات و پيشنهادات خود آگاه سازيد و به ما را در بهتر شدن كيفيت مطالب ياري کنید.
بازدید : 3667
نویسنده : TAKPAR

من در این پست تصمیم دارم نحوه فارسی نویسی بر روی lcd 2*16 را آموزش بدهم .درمرحله اول باید بدانیم که lcd ها دارای 3 نوع حافظه (CGRAM, DDRAM, CGROM) هستند.

*  CGROM   : در این حافظه کاراکترهای از پیش تعیین شده مانند ارقام حروف و ... قرار دارند  LCD با دریافت کد اسکی مربوط به هر کاراکتر آن را در صفحه نمایش ، نمایش میدهد.

*  DDRAM   : حافظه موقتی است که اطلاعات برای نمایش در آن نوشته می شود.

*  CGRAM   : این حافظه 64 بایتی می باشد و ما می توانیم در داخل این حافظه حداکثر 8 کاراکتر دلخواه ایجاد کنیم.

برای ایجاد یک کراکتر باید یک ماتریس 8*5  رسم کرده وکاراکتر دلخواه را با یک و صفر کردن خانه های آن بسازید

 0     0      0      0      0

 0     0      0      0      0

 0     0      0      0      0

 1     1      1      0      0        کراکتر"م"

 1     0      1      0      0

 1     1      1      1      1

 0     0      0      0      0

 0     0      0      0      0

 در ادامه هر سطر را با اضافه کردن 3 عدد صفر در سمت چپ کامل کنید

و در  برنامه زیر هر کاراکتر دلخواه  را با مقدار دهی یکی از آرایه ها به وجود آورید

 

#include

#include

#include

 

#asm

   .equ __lcd_port=0x12 ;PORTD

#endasm

             

char i,CGRAM;

  

char   DATA3[]={0,0,7,5,31,0,0,0};      //م

char   DATA2[]={0,0,14,10,31,10,14,0};  //ه

char   DATA1[]={0, 0, 14, 2, 3, 2, 14, 0};  //د

char   DATA0[]={0,0,0,3,18,17,31,0};  //ی

char   DATA4[]={0B11111,0B10001,0B10001,0B10001,0B10001,0B10001,0B11111,0B0};

void WRITE_CGRAM(char *RAM_code,char CG_code)

{

   CGRAM=(CG_code*8)+0x40;

   for(i=0; i<8; i++)

   lcd_write_byte(CGRAM++,*RAM_code++);

 } 

 

void SEND(int x)

{

    WRITE_CGRAM(DATA0,0);

    WRITE_CGRAM(DATA1,1);

    WRITE_CGRAM(DATA2,2);

    WRITE_CGRAM(DATA3,3);

    WRITE_CGRAM(DATA4,4);

    lcd_gotoxy(x,0);

    lcd_putchar(0);

    lcd_putchar(1);

    lcd_putchar(2);

    lcd_putchar(3); 

    lcd_putchar(4); 

    }

  

void main()

    {  

    lcd_init(16);

    SEND(3);

    delay_ms(1000);

    lcd_clear();

    SEND(6);

    while(1);

    }  

 


:: موضوعات مرتبط: ﮐﺎﻣﭙﯿﻮﺗﺮ و اﯾﻨﺘﺮﻧﺖ , ,
:: برچسب‌ها: فارسی نویسی در lcd کاراکتری با زبان c ,



صفحه قبل 1 2 3 4 5 ... 56 صفحه بعد